package com.zc.iotDevice.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.zc.manager.device.domain.IotDevice;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 设备附属对象 iot_device_subsidiary
 *
 * @author gaojikun
 * @date 2023-05-16
 */
public class IotDeviceSubsidiary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 设备ID */
    private String deviceId;

    @Excel(name = "设备名称")
    private String deviceName;

    @Excel(name = "设备别名")
    private String nickName;

    /** 设备品牌 */
    @Excel(name = "设备品牌")
    private String brand;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 交直流类型 ;1-直流;2-交流;2-交直流*/
    private String currentType;

    @Excel(name = "交直流类型")
    private String currentTypeName;

    /** 设备容量 */
    @Excel(name = "设备容量")
    private BigDecimal capacity;

    /** 额定功率 */
    @Excel(name = "额定功率")
    private BigDecimal ratedPower;

    /** 设备位置 */
    @Excel(name = "设备位置")
    private String position;

    /** 设备类型 */
    private String deviceType;

    @Excel(name = "设备类型")
    private String deviceTypeName;

    /** 价格类型 */
    private String priceTypeCode;

    /** 运营商 */
    private Long operatorId;

    /** 运营商 */
    @Excel(name = "运营商")
    private String operatorName;

    /** 运营商站点 */
    private Long stationId;

    /** 运营商站点 */
    @Excel(name = "站点")
    private String stationName;

    /** 服务费 */
    @Excel(name = "服务费")
    private BigDecimal serviceFee;

    /** 电费 */
    @Excel(name = "电费")
    private BigDecimal electricCharge;

    /** 安装日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date installTime;

    /** 创建人 */
//    @Excel(name = "创建人")
    private String createName;

    /** 修改人 */
//    @Excel(name = "修改人")
    private String updateName;

    /** 使用状态;1-空闲;2-使用 */
    private String useState;

    /** 电价区间开始时间 */
    private String startTime;

    /** 电价区间结束时间 */
    private String endTime;

    /** 设备价格详情 */
    private List<Map<String,Object>> priceList;

    /** 客户openid */
    private String customCode;

//    private List<IotDeviceSubsidiaryPort> portList;
    private List<IotDevice> portList;

    /** 选中的充电枪ID */
    private String choosePortId;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDeviceId(String deviceId)
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId()
    {
        return deviceId;
    }
    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getBrand()
    {
        return brand;
    }
    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getAddress()
    {
        return address;
    }
    public void setCurrentType(String currentType)
    {
        this.currentType = currentType;
    }

    public String getCurrentType()
    {
        return currentType;
    }
    public void setCapacity(BigDecimal capacity)
    {
        this.capacity = capacity;
    }

    public BigDecimal getCapacity()
    {
        return capacity;
    }
    public void setRatedPower(BigDecimal ratedPower)
    {
        this.ratedPower = ratedPower;
    }

    public BigDecimal getRatedPower()
    {
        return ratedPower;
    }
    public void setPosition(String position)
    {
        this.position = position;
    }

    public String getPosition()
    {
        return position;
    }
    public void setDeviceType(String deviceType)
    {
        this.deviceType = deviceType;
    }

    public String getDeviceType()
    {
        return deviceType;
    }
    public void setOperatorId(Long operatorId)
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId()
    {
        return operatorId;
    }
    public void setServiceFee(BigDecimal serviceFee)
    {
        this.serviceFee = serviceFee;
    }

    public BigDecimal getServiceFee()
    {
        return serviceFee;
    }
    public void setElectricCharge(BigDecimal electricCharge)
    {
        this.electricCharge = electricCharge;
    }

    public BigDecimal getElectricCharge()
    {
        return electricCharge;
    }
    public void setInstallTime(Date installTime)
    {
        this.installTime = installTime;
    }

    public Date getInstallTime()
    {
        return installTime;
    }
    public void setCreateName(String createName)
    {
        this.createName = createName;
    }

    public String getCreateName()
    {
        return createName;
    }
    public void setUpdateName(String updateName)
    {
        this.updateName = updateName;
    }

    public String getUpdateName()
    {
        return updateName;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public String getCurrentTypeName() {
        return currentTypeName;
    }

    public void setCurrentTypeName(String currentTypeName) {
        this.currentTypeName = currentTypeName;
    }

    public String getDeviceTypeName() {
        return deviceTypeName;
    }

    public void setDeviceTypeName(String deviceTypeName) {
        this.deviceTypeName = deviceTypeName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Long getStationId() {
        return stationId;
    }

    public void setStationId(Long stationId) {
        this.stationId = stationId;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public String getUseState() {
        return useState;
    }

    public void setUseState(String useState) {
        this.useState = useState;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public List<Map<String,Object>> getPriceList() {
        return priceList;
    }

    public void setPriceList(List<Map<String,Object>> priceList) {
        this.priceList = priceList;
    }

    public String getPriceTypeCode() {
        return priceTypeCode;
    }

    public void setPriceTypeCode(String priceTypeCode) {
        this.priceTypeCode = priceTypeCode;
    }

    public String getCustomCode() {
        return customCode;
    }

    public void setCustomCode(String customCode) {
        this.customCode = customCode;
    }

//    public List<IotDeviceSubsidiaryPort> getPortList() {
//        return portList;
//    }
//
//    public void setPortList(List<IotDeviceSubsidiaryPort> portList) {
//        this.portList = portList;
//    }


    public String getChoosePortId() {
        return choosePortId;
    }

    public void setChoosePortId(String choosePortId) {
        this.choosePortId = choosePortId;
    }

    public List<IotDevice> getPortList() {
        return portList;
    }

    public void setPortList(List<IotDevice> portList) {
        this.portList = portList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceId", getDeviceId())
            .append("brand", getBrand())
            .append("address", getAddress())
            .append("currentType", getCurrentType())
            .append("capacity", getCapacity())
            .append("ratedPower", getRatedPower())
            .append("position", getPosition())
            .append("deviceType", getDeviceType())
            .append("operatorId", getOperatorId())
            .append("serviceFee", getServiceFee())
            .append("electricCharge", getElectricCharge())
            .append("installTime", getInstallTime())
            .append("createTime", getCreateTime())
            .append("createName", getCreateName())
            .append("updateTime", getUpdateTime())
            .append("updateName", getUpdateName())
            .append("priceTypeCode", getPriceTypeCode())
            .toString();
    }
}
